package org.clusterbomb.core.context;

import java.util.Map;

import org.clusterbomb.core.engine.DeploymentStage;
import org.clusterbomb.core.job.DeploymentJob.Artifact;
import org.clusterbomb.core.job.DeploymentJob.ServerGroup;
import org.clusterbomb.core.job.DeploymentJob.ServerGroup.Server;

/**
 * This class has the lifespan of a single plugin invocation.  Used to pass target and configuration data to the plugin.
 * 
 * @author jeffp
 *
 */

public class PluginInvocationContext {
	
	private DeploymentContext context;
	private Artifact currentArtifact;
	private Server currentServer;
	private ServerGroup currentServerGroup;
	private DeploymentStage currentPhase;
	private Map<String, String> configurationProperties;
	
	public DeploymentContext getContext() {
		return context;
	}
	public void setContext(DeploymentContext context) {
		this.context = context;
	}
	public Artifact getCurrentArtifact() {
		return currentArtifact;
	}
	public void setCurrentArtifact(Artifact currentArtifact) {
		this.currentArtifact = currentArtifact;
	}
	public Server getCurrentServer() {
		return currentServer;
	}
	public void setCurrentServer(Server currentServer) {
		this.currentServer = currentServer;
	}
	public ServerGroup getCurrentServerGroup() {
		return currentServerGroup;
	}
	public void setCurrentServerGroup(ServerGroup currentServerGroup) {
		this.currentServerGroup = currentServerGroup;
	}
	public DeploymentStage getCurrentPhase() {
		return currentPhase;
	}
	public void setCurrentPhase(DeploymentStage currentPhase) {
		this.currentPhase = currentPhase;
	}
	public Map<String, String> getConfigurationProperties() {
		return configurationProperties;
	}
	public void setConfigurationProperties(
			Map<String, String> configurationProperties) {
		this.configurationProperties = configurationProperties;
	}
	

}
